@瞌睡虫
2年前 提问
1个回答

网络安全常用的分布式并发控制方法有哪些

安全小白成长记
2年前

网络安全常用的分布式并发控制方法有以下这些:

  • 基于锁机制的并发控制方法:基于锁机制的并发控制方法是一种常见的并发控制算法。其基本思想是任何对共享资源的操作都需要先申请锁,并且只有加锁成功后才能对资源进行操作,操作完成即释放申请的锁。如果需要申请的锁已被其他进程锁定,则必须等到锁被释放为止。通过锁的共享和互斥,可以实现进程操作之间的同步。虽然有多种锁模型,但它们实现并发的原理是一样的,即通过加锁原则及锁相容机制实现冲突操作的串行调度。两阶段锁协议是最著名的锁并发控制算法。

  • 时间戳法:时间戳法按时标的递增次序来决定串行序列,无须加锁,也没有死锁,避免了加锁和死锁检测造成的通信开销。但是它要求时标在全系统中是唯一的,因此对于冲突较少的系统,时间戳法较为方便,而对于冲突较多的系统,则增加了事务重启的代价。目前,时间戳法限于理论研究,实际运用较少。

  • 乐观并发控制方法:乐观并发控制方法以事务间极少发生冲突为前提提出。与加锁法和时戳法遇到冲突操作即停止或拒绝执行不同,乐观法并不考虑冲突而让事务执行完毕。乐观法将写结果暂存,在事务结束后,通过一项专门的检测来检验事务的执行是否可以串行。如果可行,才把写操作的结果永久化,否则就重新启动该事务。

  • 基于版本的并发控制方法:基于版本的并发控制方法把版本管理的概念引入并发控制,使得分布式应用能够并行进行,适用于分布式数据库。多用户版本允许用户把初始数据读取到自己的工作区,用户在工作区内对数据进行操作,并用版本来记录每次操作的结果。任务结束时,利用EDBMS(工程数据库管理系统)的版本合并功能对版本进行管理,如指定、合并或者删除版本。多用户版本在一定程度上可以避免死锁的发生,也避免了为预防和解除死锁而增加的代价,但增加了任务需要的工作空间。

  • 基于事务类的并发控制方法:基于事务类的并发控制方法是对加锁法的简化策略,它把数据库的不同部分划为不同的冲突类,用存储过程来访问数据库,一个存储过程对应于一个事务。一个冲突类由若干个对象决定,属于该冲突类的事务只能存取这些对象。一个事务可以属于多个冲突类,每个冲突类设一个主节点。利用一个读/写所有可用站点的复本控制法,读事务可在任何节点执行,而写事务则被广播到组内所有节点,且只在冲突类的主节点执行。按照这种原则,属于同一冲突类的事务发生冲突的可能性较大,不同冲突类的事务不会发生冲突。对每一个冲突类,存在一个先进先出的类队列,当事务处在相同的冲突队列中时,它们按照一定的次序执行,并以此来保证冲突事务的串行。这种方法有效避免了死锁的发生。